home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGBLER / ASMCODE2.LZH / SWITCH_2.ASM < prev    next >
Assembly Source File  |  1983-06-19  |  4KB  |  68 lines

  1. ;..............................................................................
  2. ; SWITCH2.ASM                                                                 .
  3. ;                                                                             .
  4. ;         THIS IS AN ASSEMBLER PROGRAM IN '.COM' FORM.WILL NOT RUN AS .EXE    .
  5. ;                                                                             .
  6. ;  SET UP ADDRESS FOR THE DATA USED BY THE ROM BIOS.                          .
  7. ;  THE EQUIPMENT FLAG CAN BE CHANGED TO FOOL THE SYSTEM INTO THINKING THAT THE.
  8. ;  COLOR/GRAPHICS BOARD EXITS INSTEAD OF THE MONOCHROME BOARD.                .
  9. ;                                                                             .
  10. ;  <- - - - - - - - | - - - - - - - ->  EQUIP_FLAG                            .
  11. ;                         ^ ^ --display type
  12. ;               AA--DISPLAY TYPE                                              .
  13. ;  DISPLAY TYPE: 1 - COLOR CARD 40 X 25                                       .
  14. ;                2 - COLOR CARD 80 X 25                                       .
  15. ;                3 - MONOCHROME DISPLAY                                       .
  16. ;..............................................................................
  17. ROM_BIOS_DATA    SEGMENT  AT 40H
  18. RS232_BASE       DW    4 DUP(?)            ;ADDRESSES OF RS232 ADAPTER
  19. PRINTER_BASE     DW    4 DUP(?)            ;ADDRESSES OF PRINTER
  20. EQUIP_FLAG     DW    ?             ;INSTALLED HARDWARE     
  21. ROM_BIOS_DATA    ENDS 
  22.  
  23.  
  24. ;..............................................................................
  25. ;  THIS IS THE START OF THE EXECUTABLE CODE.                                  .
  26. ;.............................................................................. 
  27. CSEG     SEGMENT PARA 'CODE'         
  28.      ASSUME CS:CSEG,DS:ROM_BIOS_DATA  
  29.          ORG   100H              ;Set starting point for a COM file
  30. SWITCH:  MOV   AX,ROM_BIOS_DATA  ;Set up data segment to point to data         
  31.          MOV   DS,AX
  32.  
  33.          MOV   CH,0FH            ;Remove cursor by placing out of display range
  34.          MOV   CL,0
  35.          MOV   AH,1              ;Set cursor type, to clear cursor
  36.          INT   10H
  37.  
  38.          MOV   AH,6              ;Scroll screen to clear screen
  39.          MOV   AL,0              ;Blank entire screen
  40.          XOR   CX,CX             ;Upper left corner at 0,0
  41.          MOV   DL,70             ;Lower right corner at 79,24
  42.          MOV   DH,24             
  43.          MOV   BH,07             ;Fill attributes with 7 for normal display
  44.          INT   10H               ;Clear screen
  45.  
  46.       
  47.  
  48.          XOR   AH,AH             ;AH = 0 calls for set-mode function
  49.          MOV   BX,EQUIP_FLAG     ;Get the current equipment flag
  50.          MOV   CX,BX             ;Make a copy of the flag
  51.          AND   CX,30H            ;Pick off the display information
  52.          XOR   BX,CX             ;Erase current display information
  53.          OR    BX,20H            ;Set to color display, 40 x 25
  54.          MOV   AL,2              ;BW 40X25 mode
  55.          CMP   CX,30H            ;Was it set to monochrome display?
  56.          JE    S1                ;Yes, then set to BW, 40x25
  57.          OR    BX,30H            ;No, set to monochrome display
  58.  
  59.          MOV   AL,7              ;Monochrome mode 
  60. S1:      MOV   EQUIP_FLAG,BX     ;Write flag back to memory 
  61.          INT   10H               ;Make request to BIOS to set display mode 
  62.  
  63.          INT   20H               ;Return to DOS 
  64.  
  65. CSEG     ENDS 
  66.  
  67.          END   SWITCH 
  68.